home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 March / EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso / earcd / demo / db2_10fr.lha / DB2.10-f / Exemples / Relations / unique.db < prev   
Text File  |  1980-07-27  |  987b  |  49 lines

  1. /* Produit un nombre ID unique
  2.  * Script ARrexx pour db qui fait une ID unique si rien n'est entré
  3.  * dans le champ actuel, ou bien cherche si il y a un double si
  4.  * quelquechose est entré. Le script ne réutilisera jamais une ID
  5.  * précédemment enlevé.
  6.  *
  7.  * par David Ekholm 1995
  8.  * $VER: unique.db 1.0 (26.9.95)
  9.  *
  10.  */
  11.  
  12. Options Results
  13.  
  14. CurrentRecord
  15. newrec = result
  16.  
  17. GetField
  18. keyval = result
  19. BlockInput
  20.  
  21. if keyval ~= "" then do /* Vérifie si il y a des doubles */
  22.  Mode 'Find'
  23.  Kill
  24.  PutField keyval
  25.  FindFirst
  26.  if result == newrec then FindNext
  27.  matchrec = result
  28.  CurrentRecord newrec
  29.  FreeInput
  30.  if matchrec ~= newrec then do /* Cet enregistrement a un double */
  31.   DisplayBeep
  32.   Okay1 "Il y a déja un enregistrement avec cette clé!"
  33.   PutField ""
  34.   RetryInput
  35.  end
  36. end
  37. else do /* Met une ID unique à la place */
  38.  maxID = 1
  39.  FirstRecord
  40.  do while rc == 0
  41.   GetField
  42.   if result >= maxID then maxID = result + 1
  43.   NextRecord
  44.  end
  45.  CurrentRecord newrec
  46.  FreeInput
  47.  PutField maxID
  48. end
  49.